#ifndef HEXFILETRANS_H
#define HEXFILETRANS_H

#include "string"
#include "intelhex.h"
#include "libXL/libxl.h"
#include "string.h"
#include <utils.h>

enum HexType{
    JMC,CAMC,FAW_J6P,RFU,PORT_SRR
};

using namespace std;
class HexFileTrans
{
    public:
        /** Default constructor */
        HexFileTrans();
        /** Default destructor */
        virtual ~HexFileTrans();

        /** Access m_CalPath_xlsx
         * \return The current value of m_CalPath_xlsx
         */
        std::wstring GetCalPath_xlsx() { return m_CalPath_xlsx; }
        /** Set m_CalPath_xlsx
         * \param val New value to set
         */
        void SetCalPath_xlsx(wstring val) { m_CalPath_xlsx = val; }
        /** Access m_CalPath
         * \return The current value of m_CalPath
         */
        wstring GetCalPath() { return m_CalPath; }
        /** Set m_CalPath
         * \param val New value to set
         */
        void SetCalPath(wstring val) { m_CalPath = val; }
        /** Access m_AppPath
         * \return The current value of m_AppPath
         */
        wstring GetAppPath() { return m_AppPath; }
        /** Set m_AppPath
         * \param val New value to set
         */
        void SetAppPath(wstring val) { m_AppPath = val; }
        /** Access m_BLPath
         * \return The current value of m_BLPath
         */
        wstring GetBLPath() { return m_BLPath; }
        /** Set m_BLPath
         * \param val New value to set
         */
        void SetBLPath(wstring val) { m_BLPath = val; }

        wstring GetFlashPath() { return m_FlashPath; }

        void SetFlashPath(wstring val) { m_FlashPath = val; }

        wstring GetLES()    {return m_LastErrString;}

        void SetTypeName(wstring val) { m_TypeName = val; }

        void SetTypeIdx(HexType val) { m_Type = val; }

        bool GenCalFile();

        bool GenFlashFile();

        bool GenSWFile();

    protected:

    private:
        wstring m_CalPath_xlsx; //!< Member variable "m_CalPath_xlsx"
        wstring m_CalPath; //!< Member variable "m_CalPath"
        wstring m_AppPath; //!< Member variable "m_AppPath"
        wstring m_BLPath; //!< Member variable "m_BLPath"
        wstring m_FlashPath;
        wstring m_LastErrString;
        wstring m_TypeName;
        HexType m_Type;

};

#endif // HEXFILETRANS_H
